package com.ruoyi.tws.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.MyPlusEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import org.springframework.data.annotation.Transient;

/**
 * 发票对象 tws_bill
 * 
 * @author ruoyi
 * @date 2023-02-13
 */
@Data
@ToString
@EqualsAndHashCode
@NoArgsConstructor
@Accessors(chain = true)
@TableName("tws_bill")
public class Bill extends MyPlusEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @TableId
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /** 订单数量 */
    @Excel(name = "订单数量")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long orderCount;

    /** 总计金额(元) */
    @Excel(name = "总计金额(元)")
    private BigDecimal totalMoney;

    /** 发票收件人 */
    @Excel(name = "发票收件人")
    private String receiptName;

    /** 收件联系电话 */
    @Excel(name = "收件联系电话")
    private String receiptPhone;

    /** 收件地址 */
    @Excel(name = "收件地址")
    private String receiptAddress;

    /** 开票人id */
    @Excel(name = "开票人id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long billUserId;

    /** 开票人 */
    @Excel(name = "开票人")
    private String billUser;

    /** 1普票2专票 */
    @Excel(name = "1普票2专票")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long billType;

    /** 发票号 */
    @Excel(name = "发票号")
    private String billNo;

    /** 开票日/处理日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开票日/处理日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date billDate;

    /** 1：已申请 2：已开票 3：已撤销 */
    @Excel(name = "1：已申请 2：已开票 3：已撤销")
    @JsonSerialize(using = ToStringSerializer.class)
    private Integer status;

    /** 物流公司名称 */
    @Excel(name = "物流公司名称")
    private String companyName;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private String tenantId;

    @TableField(exist = false)
    private String[] orderIds;

}
